# ChatGPT API Service

## Описание

Этот проект представляет собой серверное приложение для взаимодействия с API OpenAI GPT. Он позволяет отправлять сообщения в чат и получать ответы с помощью разных моделей ИИ. Проект использует `Gin` для создания REST API и `Redis` для хранения истории чатов.

## Структура проекта

- `cmd/`: содержит основной файл `main.go` для запуска сервера.
- `models/`: содержит модели данных.
- `pkg/handlers/`: содержит обработчики HTTP-запросов.
- `pkg/repository/`: содержит репозиторий для взаимодействия с OpenAI API и Redis.
- `pkg/service/`: содержит бизнес-логику.
- `public/`: содержит статические файлы, такие как HTML, CSS и JS для клиентской части.
- `Dockerfile`: файл для создания Docker-образа.
- `docker-compose.yml`: файл для управления контейнерами с помощью Docker Compose.
- `.env`: файл для хранения переменных окружения.

## Требования

- Go 1.19 или новее
- Docker
- Docker Compose

## Установка

1. Клонируйте репозиторий:

```bash
    git clone https://gitlab.com/jakinss321/chat.git
    cd chat
```

2. Создайте файл `.env` и добавьте необходимые переменные окружения:

```env
    API_KEY=your_openai_api_key
    API_LINK=https://api.openai.com/v1/chat/completions
    PORT=8081
    MODEL=gpt-3.5-turbo-1106
    REDIS_HOST=redis
    REDIS_PORT=6379
    PROXY_URL=http://your_proxy_url
    PROXY_USER=your_proxy_user
    PROXY_PASSWORD=your_proxy_password
```

## Запуск

1. Соберите и запустите контейнеры с помощью Docker Compose:

```bash
    docker-compose up --build
```

2. Откройте браузер и перейдите по адресу `http://localhost:8081`, чтобы увидеть клиентскую часть.

## Использование

### Отправка сообщения

- URL: `/api/interact`
- Метод: POST
- Параметры в теле запроса:

```json
  {
      "content": "Ваше сообщение",
      "id_profile": "ID профиля"
  }
 ```

### Получение истории чата

- URL: `/api/history`
- Метод: GET
- Параметры URL:
- id_profile: ID профиля
- Очистка истории чата
- URL: /api/clearhistory
- Метод: GET
- Параметры URL:
- id: ID профиля
